Skip to main content

Kommandozeilen-Schnittstelle verwenden

Sie können CODESYS.exe über die Kommandozeile starten und dabei die im Folgenden beschriebenen Optionen und Argumente angeben.

Syntax:

<installation folder>CODESYS.exe --<Option>

Anmerkung

Wenn Sie mit dem CODESYS Installer mehrere CODESYS-Instanzen auf Ihrem Computer installiert haben, müssen Sie die Instanz, die gestartet werden soll, mit der Option --additionalfolder angeben.

Tipp

Pfade oder Optionenparameter, die Leerzeichen, Minuszeichen oder Schrägstriche enthalten, müssen Sie in einfache Anführungszeichen fassen.

Option --additionalfolder

Gilt nur für Installationen, die mit dem CODESYS Installer erfolgt sind:

Wenn Sie mehrere Instanzen einer CODESYS -Version installiert haben und gezielt eine der Instanzen über Kommandozeile starten wollen, gilt: Sie müssen mit der Option --additionalfolder zusätzlich zum Profil auch den absoluten (!) Pfad des AddionalFolders/<instance name> angeben.

Hintergrund: Der CODESYS Installer erzeugt bei einer Installation im Installationsverzeichnis im Ordner CODESYS einen Unterordner AdditionalFolders . In diesem Ordner wiederum liegt für jede CODESYS -Instanz ein separater Unterordner mit den individuellen Dateien zu Profil, PlugIns, PackageDB. Für die erste installierte Instanz heißt der Unterordner Default, weitere erhalten jeweils den bei der Installation vergebenen Installationsnamen.

Sie sehen den für --additionalfolder anzugebenden absoluten Pfad im CODESYS Installer , wenn Sie in der Kachel der betreffenden Instanz die Schaltfläche Ändern betätigen. Er ist als Ablageort eingetragen.

Syntax:

--additionalfolder=<AdditionalFolders\<instance installation name>>
Beispiel 44. Beispiel

Von CODESYS 3.5.18.20 wurden mit dem CODESYS Installer auf Ihrem Computer zwei Instanzen installiert, eine für Service Techniker, eine für Entwickler. Sie möchten die Instanz Service über ein Skript StartServiceScript.py über Kommandozeile starten. Dazu geben Sie in der Kommandozeile hinter der Option --profile die Option --additionalfolder folgendermaßen an:

"C:\Program Files (x86)\CODESYS3.5.18.20\CODESYS\Common\CODESYS.exe" --profile="CODESYS V3.5 SP18 --additionalfolder="C:\Program Files\CODESYS 3.5.18.20\CODESYS\AdditionalFolders\Service"  --runscript="D:\Dokumente\Scripting\StartServiceScript.py"--scriptargs:'username password 3.14 "path=\"C:\temp\\\""'–noUI


Option: --culture (Landessprache der Benutzeroberfläche)

CODESYS wird in der angegebenen Landessprache gestartet.

Syntax:

--culture=<Culture>

<Culture>: Übliches Sprachkürzel für die gewünschte Landessprache, beispielsweise de, en, fr, it, es, zh-CHS.

Beispiel 45. Beispiel

Starten von CODESYS mit englischer Benutzeroberfläche:

CODESYS.exe --culture=en


Option: --profile (CODESYS-Profil)

CODESYS wird direkt mit dem angegebenen Profil gestartet. Wenn Sie CODESYS ohne diese Angabe starten, erhalten Sie den Dialog Profil auswählen.

Syntax:

--profile="<profile name>"

<profile name>: Sie müssen den Profilnamen exakt so angeben, wie er im Dialog Hilfe → Informationen des Entwicklungssystems oder im Startmenü Ihres Computers angezeigt wird.

Beispiel 46. Beispiel
CODESYS.exe --culture=de --profile="CODESYS V3.6"


Option: --compare (Projektvergleich anstossen)

Nach dem Starten von CODESYS wird unmittelbar der Vergleich zweier CODESYS-Projekte herbeigeführt. Geben Sie hinter der Option als Argumente zunächst das „aktuelle Projekt“ und dann das „Vergleichsprojekt“ an. CODESYS startet und öffnet die Ansicht Projektvergleich - Unterschiede.

Syntax:

--compare="<path of project file>" "<path of reference project file>"
Beispiel 47. Beispiel
CODESYS.exe --compare  "D:\proj\project1.project"  "D:\proj\project2.project"


Option: --project (CODESYS-Projekt öffnen)

CODESYS wird gestartet und das angegebene Projekt wird geöffnet.

Syntax:

--project="<path of project file>"

<path of project file>: Dateipfad des Projekts

Beispiel 48. Beispiel

Öffnen des Projekts test:

CODESYS.exe --culture=de --project="D:\projects\test.project"


Option: --projectarchive (CODESYS-Projektarchiv öffnen)

CODESYS wird gestartet, das angegebene Projektarchiv wird extrahiert und das Projekt wird geöffnet.

Syntax:

--projectarchive="<path of projectarchive file>"

<path of project archive file>: Dateipfad des Projektarchivs

Beispiel 49. Beispiel

Extrahieren des Projektarchivs test.projectarchive und Öffnen des Projekts im Programmiersystem:

CODESYS.exe --projectarchive="D:\projects\test.projectarchive"


Option: --runscript (Skript ausführen)

Die angegebene Skriptdatei wird von CODESYS ausgeführt.

Tabelle 8. Kommandozeilen-Optionen für --runscript

--runscript="<scriptfile>.py"

CODESYS führt die Skriptdatei <scriptfile>.py beim Start aus.

Sie müssen den gesamten Pfad der Skript-Datei angeben.

--scriptargs:'<arg1> <arg2> ... <argn>'

Verwenden Sie die Option zusammen mit der Option --runscript. Sie bewirkt die Übergabe der Argumente <arg1> … <argn> an das Skript. Die Argumente werden an die Python-Variable sys.argv weitergereicht.

--noUI

Verwenden Sie die Option zusammen mit der Option --runscript.

Die CODESYS Benutzeroberfläche wird nicht geöffnet. CODESYS gibt alle Fehler, Warnungen, Compiler-Meldungen und Meldungen, die das Skript erzeugt, in der Kommandozeile aus. Die Skript-Meldungen (1: Severity Text) können von den anderen Meldungen (2: Severity FatalError, Error, Warning, Information) mit dem Operator > getrennt werden.

--enablescripttracing

Verwenden Sie die Option zusammen mit der Option --runscript. Sie bewirkt, dass jeder Befehl der Skriptdatei in der Ausgabe angezeigt wird.

--textPrompts

Verwenden Sie die Option zusammen mit der Option --noUI. Sie bewirkt, dass Message-Service-Methoden und Standarddialoge in der Kommandozeile ausgegeben werden, so dass Benutzereingaben erfolgen können.

Wenn Sie --textPrompts nicht angeben, werden alle Message-Service-Prompts automatisch mit dem Standardwert beantwortet.

scriptdebugger {="<debugger>"}

Verwenden Sie die Option zusammen mit der Option --runscript. Sie versetzt IronPython in den Debugbetrieb, so dass externe Debugger zur Fehlersuche in Python-Skripts verwendet werden können. Folgende Werte sind für <debugger> definiert, wobei Groß-/Kleinschreibung nicht unterschieden wird:

  • auto: Erkennt automatisch ob ein Debugger zum aktuellen Prozess bei jedem Skriptstart angehängt ist. Momentan können nur .NET-basierte Debugger automatisch erkannt werden. Ein erkannter Debugger überschreibt das Flag --enablescripttracing.

  • .NET: Aktiviert das Debugging für .NET-basierte Debugger wie das „Python Tools for Visual Studio“ (PTVS) und SharpDevelop. Mit dieser Option kann ein Debugger im Gegensatz zu „auto“ auch an bereits laufende Scripte angehängt werden.

    Bitte beachten: Dies ist derzeit der Standardwert, wenn --scriptdebugger ohne Angabe eines Werts verwendet wird.

  • disabled: Deaktiviert das Debugging und die automatische Erkennung.

  • script: Versetzt die IronPython Skript-Engine in den Debugbetrieb um das Debugging für Settrace-basierte Debugger zu aktivieren. Das Skript selber muss sich mit dem Debugger verbinden und sich von ihn trennen.

  • tracing: Aktiviert den einfachen integrierten „Script Tracing“-Betrieb und deaktiviert die automatische Erkennung.. Ist äquivalent zur Option --scripttracing.

  • $absolute_path.py$: Absoluter Pfad zu einem Python-Skript, das die Verbindung zu einem Python-basierten Debugger initialisiert. Die IronPython Script Engine wird in den Debugbetrieb geschaltet, um das Debugging für Settrace-basierte Debugger zu ermöglichen. Dieses Skript wird einmal während der Initialisierung ausgeführt, und es sollte folgende parameterlose Funktionen definieren:

    scriptdebuggersetup wird unmittelbar vor der Ausführung des Anwenderskripts ausgeführt, um die Verbindung zum Debugger herzustellen.

    scriptdebuggershutdown wird unmittelbar nach Ausführung des Anwenderskripts aufgerufen, oder wenn die Script Engine heruntergefahren ist, und sollte die Verbindung zum Debugger beenden.



Beispiel 50. Beispiele für Verwendung von Übergabeparametern in Skriptdateien mittels sys.argv
start /b /wait CODESYS.exe
--runscript="D:\Script\ArgvAnd__main__Test.py"
--scriptargs:'username password 3.14 "path=\"C:\temp\\"'

Skript-Datei ArgvAnd__main__Test.py

from __future__ import print_function
import sys
print("sys.argv: ", len(sys.argv), " elements:")

for arg in sys.argv:
    print(" - ", arg)
print()
print("__name__: ", __name__)

Ausgabeergebnis stdout:

sys.argv: 6 elements:
- D:\TestScripts\ArgvAnd__main__Test.py
- username
- password
- 3.14
- path= "C:temp"
__name__: __main__

Weitere Informationen zur globalen Variable __name__ finden Sie in der Python-Dokumentation.



Beispiel 51. Beispiele zur Meldungsausgabe
start /b /wait CODESYS.exe --runscript="D:\Script\AmpelTest.py" --noUI 1>ScriptMessages.txt

Alle Meldungen, die das Skript erzeugt, leitet CODESYS in die Datei ScriptMessages.txt um. Die anderen Meldungen werden in der Kommandozeile ausgegeben.

start /b /wait CODESYS.exe --runscript="D:\Script\AmpelTest.py" --noUI 2>NUL

CODESYS unterdrückt alle Meldungen mit Ausnahme der Skriptmeldungen. Die Skriptmeldungen werden in der Kommandozeile ausgegeben.



Beispiel 52. Beispiel für Verwendung der Option –scriptdebugger

Das folgende Skript initdebug.py wurde erfolgreich mit pydevd-basierten Debuggern wie PyDev / LiClipse oder PyCharm getestet. Um dieses Skript zu verwenden, starten Sie CODESYS mit der folgenden Kommandozeile:

--profile="Fanta Development Build" --scriptdebugger="D:\test\charmdebug\initdebug.py"

Dateiinitdebug.py:

from _future_ import print_function
from _future_ import unicode_literals
import sys
sys.path.append(r"D:\test\Env2\Lib\site-packages\pycharm-debug.egg")
import pydevd
def scriptdebuggersetup():
pydevd.settrace('localhost', port=51234, stdoutToServer=True, stderrToServer=True)
def scriptdebuggershutdown():
pydevd.stoptrace()


Für weitere Informationen siehe: Skripte verwenden und http://docs.python.org/tutorial/modules.html

Option: --ignorewhitespace (Leerzeichen beim Projektvergleich ignorieren)

Wenn Sie diese Option hinter der Option --compare <project1> <project2> hinzufügen, werden Leerzeichen im Projektvergleich nicht berücksichtigt. Hinweis: Semantisch relevante Leerzeichen, wie beispielsweise in STRING-Literalen, werden dennoch in jedem Fall berücksichtigt.

Syntax

--compare="<path of project file>" "<path of reference project file>" --ignorewhitespace="true"|"false"
Beispiel 53. Beispiel
CODESYS.exe --compare "D:\proj\project1.project" "D:\proj\project2.project" --ignorewhitespace="true"


Option: --ignorecomments (Kommentare beim Projektvergleich ignorieren)

Wenn Sie diese Option hinter der Option --compare <project1> <project2> hinzufügen, werden Kommentare im Projektvergleich nicht berücksichtigt.

Syntax:

--compare="<path of project file>" "<path of reference project file>" --ignorecomments="true"|"false"
Beispiel 54. Beispiel
CODESYS.exe --compare "D:\proj\project1.project" "D:\proj\project2.project" --ignorecomments="true"


Option: --ignoreproperties (Objekteigenschaften beim Projektvergleich ignorieren)

Wenn Sie diese Option hinter der Option --compare <project1> <project2> hinzufügen, werden Objekteigenschaften (Zugriffsrechte, Übersetzungseinstellungen, Verzeichnisse, Bitmaps etc.) im Projektvergleich nicht berücksichtigt.

Syntax:

--compare="<path of project file>" "<path of reference project file>" --ignoreproperties="true"|"false"
Beispiel 55. Beispiel
CODESYS.exe --compare "D:\proj\project1.project" "D:\proj\project2.project" --ignoreproperties="true"


Option: --skipunlicensedplugins (Komponenten ohne Lizenz nicht laden)

CODESYS wird gestartet. Dabei wird die Abfrage, ob nichtlizenzierte Komponenten dennoch geladen werden sollen, übersprungen. In diesem Fall lädt CODESYS diese Komponenten stillschweigend nicht.

Beispiel 56. Beispiel
CODESYS.exe –skipunlicensedplugins


Option: --signaturethumbprint (Fingerabdruck des Zertifikats, das für das Signieren von übersetzten Bibliotheken verwendet wird)

Wenn Sie diese Option hinter der Option --project="<path of project file>" hinzufügen, wird das Projekt geöffnet und dabei der Fingerabdruck des Zertifikats für das Signieren von übersetzten Bibliotheken übergeben.

Syntax:

--signaturethumbprint="<thumbprint of digital signature>"
Beispiel 57. Beispiel
CODESYS.exe --project="D:\projects\test.project" signaturethumbprint="3E96C9B61010CBDC3186021A1CAA64946DDCAAF3"


Option: --enforcesignedcompiledlibraries (Signieren von übersetzten Bibliotheken erzwingen)

Wenn Sie diese Option hinter der Option --project="<path of project file>" hinzufügen, wird im Projekt im Security-Screen auf der Registerkarte Benutzer die Option Signieren von übersetzten Bibliotheken erzwingen aktiviert.

Wichtig

Wenn der Security-Screen geöffnet und wieder geschlossen wird, werden die aktuellen Einstellungen in die Benutzeroptionen übernommen, auch wenn keine aktiven Änderungen vorgenommen wurden.

Syntax:

--enforcesignedcompiledlibraries
Beispiel 58. Beispiel
CODESYS.exe --project="D:\projects\test.library" --enforcesignedcompiledlibraries


Option: --timestampingserverurl (Zeitstempel-Server-Adresse setzen)

Wenn Sie diese Option hinter der Option --project="<path of project file>" hinzufügen, wird im Projekt im Security-Screen auf Registerkarte Benutzer die Internet-Adresse des RFC-3161 Zeitstempel-Servers (Zeitstempel-Server) gesetzt.

Wichtig

Wenn der Seurity-Screen geöffnet und wieder geschlossen wird, werden die aktuellen Einstellungen in die Benutzeroptionen übernommen, auch wenn keine aktiven Änderungen vorgenommen wurden.

Syntax:

--timestampingserverurl="<URL of RFC-3161 timestamping server>"
Beispiel 59. Beispiel
CODESYS.exe --timestampingserverurl="http://timestamp.comodoca.com/rfc3161"


Option: --enableEventLog

CODESYS wird gestartet und alle Befehlsausführungen werden im Windows Ereignisprotokoll aufgezeichnet. Die Aufzeichnungen befinden sich in der Windows Ereignisanzeige unter Anwendungs-und Dienstprotokolle → AP.

Bei der erstmaligen Verwendung dieser Option muss CODESYS mit Administratorrechten gestartet werden.

Syntax:

--enableEventLog="CommandManager"

Option --ForceDisconnectAfterInactivity

Für diese CODESYS-Sitzung wird die Zeit der Inaktivität, nach der die Verbindung zur Steuerung automatisch abgebrochen wird, auf die angegebene Zeit (Angabe in Sekunden) gesetzt. Der in dieser Option angegebene Wert überschreibt für diese CODESYS-Sitzung den Wert, der in den CODESYS-Optionen in der Kategorie Online eingestellt ist.

Wenn der Wert auf 0 gesetzt wird, wird nicht nach einer bestimmten Zeit der Inaktivität die Verbindung zur Steuerung automatisch abgebrochen. Für diese CODESYS-Sitzung ist damit die Option für den Verbindungsabbruch in den CODESYS-Optionen deaktiviert.

Syntax:

--ForceDisconnectAfterInactivity="<value in seconds>"
<value in seconds> : [10, 10800] | 0
Beispiel 60. Beispiel

Nach 300 Sekunden der Inaktiviät wird die Verbindung zur Steuerung automatisch abgebrochen

--ForceDisconnectAfterInactivity="300"